import { Module, Global, ValidationPipe } from '@nestjs/common';
import { APP_PIPE } from '@nestjs/core';
import { CqrsModule } from '@nestjs/cqrs'
import { AppUploadModule } from './upload/app-upload.module';

/**
 * 全局模块 CQRS架构 命令模式
 */
@Global()
@Module({
  imports: [CqrsModule, AppUploadModule],
  exports: [CqrsModule],
  providers: [
    {
      provide: APP_PIPE,
      useFactory: () => new ValidationPipe({
        // 证器将去除任何不使用任何验证装饰器的属性的已验证（返回）对象
        whitelist: true,
        // 当第一个验证报错 后续验证不再执行
        stopAtFirstError: true,
      })
    }
  ]
})
export class CommanModule { }
